home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 24
/
Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso
/
Aminet
/
dev
/
misc
/
Hunk.lha
/
Hunk
/
Hoppers
/
OberonII_30.hop
< prev
next >
Wrap
Text File
|
1998-02-14
|
5KB
|
118 lines
;*************************************************************************
;** Oberon-II 3.0 **
;** Contributor: L.Lucius Sept 23rd 1995 **
;** Modified for HOp: Thomas Richter (thor) Nov 1st 1997 **
;** Function: Modify 68000 math routines to use 68020+ instructions. **
;*************************************************************************
;*************************************************************************
;
; DIV
;
#match
#code
48E7 3C00 ; MOVEM.L D2-D5,-(A7)
2800 ; MOVE.L D0,D4
6A02 ; BPL.B 000A
4480 ; NEG.L D0
2A01 ; MOVE.L D1,D5
6A02 ; BPL.B 0010
4481 ; NEG.L D1
0C81 0000 FFFF ; CMPI.L #0000FFFF,D1
621A ; BHI.B 0032
3601 ; MOVE.W D1,D3
3400 ; MOVE.W D0,D2
4240 ; CLR.W D0
4840 ; SWAP D0
80C3 ; DIVU.W D3,D0
2200 ; MOVE.L D0,D1
4840 ; SWAP D0
3202 ; MOVE.W D2,D1
82C3 ; DIVU.W D3,D1
3001 ; MOVE.W D1,D0
4241 ; CLR.W D1
4841 ; SWAP D1
601E ; BRA.B 0050
2601 ; MOVE.L D1,D3
2200 ; MOVE.L D0,D1
4241 ; CLR.W D1
4841 ; SWAP D1
4840 ; SWAP D0
4240 ; CLR.W D0
740F ; MOVEQ #0F,D2
D080 ; ADD.L D0,D0
D381 ; ADDX.L D1,D1
B681 ; CMP.L D1,D3
6204 ; BHI.B 004C
9283 ; SUB.L D3,D1
5240 ; ADDQ.W #1,D0
51CA FFF2 ; DBF D2,0040
4A84 ; TST.L D4
6A02 ; BPL.B 0056
4481 ; NEG.L D1
BB84 ; EOR.L D5,D4
6A0A ; BPL.B 0064
4480 ; NEG.L D0
4A81 ; TST.L D1
6704 ; BEQ.B 0064
5380 ; SUBQ.L #1,D0
D285 ; ADD.L D5,D1
4CDF 003C ; MOVEM.L (A7)+,D2-D5
4E75 ; RTS
;
;
#replace
4C41 0801 ; DIVSL.L D1,D1:D0
4E75 ; RTS
#end
;*************************************************************************
;
; MUL
;
#match
#code
48E7 3000 ; MOVEM.L D2-D3,-(A7)
4A80 ; TST.L D0
5BC3 ; SMI D3
6A02 ; BPL.B 000C
4480 ; NEG.L D0
4A81 ; TST.L D1
6A04 ; BPL.B 0014
4603 ; NOT.B D3
4481 ; NEG.L D1
4840 ; SWAP D0
4841 ; SWAP D1
4A40 ; TST.W D0
670C ; BEQ.B 0028
4A41 ; TST.W D1
6706 ; BEQ.B 0026
003C 0002 ; ORI #02,CCR
601C ; BRA.B 0042
C340 ; EXG D1,D0
4840 ; SWAP D0
3401 ; MOVE.W D1,D2
4841 ; SWAP D1
C2C0 ; MULU.W D0,D1
C0C2 ; MULU.W D2,D0
4840 ; SWAP D0
4A40 ; TST.W D0
66E8 ; BNE.B 0020
D081 ; ADD.L D1,D0
6BE4 ; BMI.B 0020
4A03 ; TST.B D3
6702 ; BEQ.B 0042
4480 ; NEG.L D0
4CDF 000C ; MOVEM.L (A7)+,D2-D3
4E75 ; RTS
;
;
#replace
4C01 0800 ; MULS.L D1,D0
4E75 ; RTS
#end